package br.com.Orange.model;

import java.util.ArrayList;
import java.util.Collection;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

import br.com.Orange.util.negocio.ObjetoIdentificado;

@Entity
public class TipoQuarto implements ObjetoIdentificado<Integer>{
	
	@Id
	@GeneratedValue
	private int codigo;
	
	private String nome;
	
	private String descricao;
	
	private double preco;
	
	@OneToMany(mappedBy = "tipo", fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<Quarto> quartos = new ArrayList<Quarto>();
	
	public TipoQuarto(String nome, String descricao, double preco){
		this.nome = nome;
		this.descricao = descricao;
		this.preco = preco;
	}
	
	public TipoQuarto(){
		
	}
	
	/**
	 * @return the quartos
	 */
	public Collection<Quarto> getQuartos() {
		return quartos;
	}

	/**
	 * @param quartos the quartos to set
	 */
	public void setQuartos(Collection<Quarto> quartos) {
		this.quartos = quartos;
	}

	/**
	 * @return the codigo
	 */
	public int getCodigo() {
		return codigo;
	}

	/**
	 * @param codigo the codigo to set
	 */
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	/**
	 * @return the nome
	 */
	public String getNome() {
		return nome;
	}

	/**
	 * @param nome the nome to set
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}

	/**
	 * @return the descricao
	 */
	public String getDescricao() {
		return descricao;
	}

	/**
	 * @param descricao the descricao to set
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	/**
	 * @return the preco
	 */
	public double getPreco() {
		return preco;
	}

	/**
	 * @param preco the preco to set
	 */
	public void setPreco(double preco) {
		this.preco = preco;
	}

	@Override
	public Integer getID() {
		return getCodigo();
	}

}
